home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / gfx / edit / AmiCAD_2.06.lha / AmiCAD / ARexx / Tourner.AmiCAD < prev    next >
Text File  |  2000-04-14  |  2KB  |  67 lines

  1. /* Rotation d'un composant en conservant un emplacement
  2. correct de sa référence et de sa valeur.
  3. Version 1.00: 11 août 1998
  4. Version 1.01: 14 avril 2000 (Adaptation version 2.05)
  5. $VER: Tourner.AmiCAD 1.01, © R.Florac, 14 avril 2000 */
  6.  
  7. options results
  8.  
  9. signal on error
  10. signal on syntax
  11.  
  12. nr=0; objet=1
  13. 'SAVEALL:OBJECTS'; objets=result
  14. do while objet>0
  15.     'O=FINDOBJ('objet',1,-1,-1)'; objet=result
  16.     if objet>0 then do
  17.     'TEST(O)'
  18.     if result>0 then do
  19.         nr=nr+1
  20.         call tourner(objet)
  21.     end
  22.     objet=objet+1
  23.     if objet>objets then objet=0
  24.     end
  25. end
  26.  
  27. if nr=0 then do
  28.     'PICKOBJ("Cliquez sur l''objet à faire tourner")'
  29.     objet=result
  30.     call tourner(objet)
  31. end
  32.  
  33. exit
  34.  
  35. tourner: procedure
  36.     parse arg o
  37.     'GETPOS(O='o')'; p=result
  38.     'ROTATE(O,1):V=GETVAL(O)'
  39.     if result>0 then do
  40.     if p=1 | p=3 then do
  41.         'MOVE(V,COL(O)-COL(V)+10,LINE(O)+HEIGHT(O)-LINE(V)+9)'
  42.     end
  43.     else do
  44.         'MOVE(V,COL(O)+WIDTH(O)-COL(V)+9,LINE(O)+HEIGHT(O)-(HEIGHT(O)-20)/2-1-LINE(V))'
  45.     end
  46.     end
  47.     'R=GETREF(O)'
  48.     if result>0 then do
  49.     if p=1 | p=3 then do
  50.         'MOVE(R,COL(O)-COL(R)+10,LINE(O)-LINE(R))'
  51.     end
  52.     else do
  53.         'MOVE(R,COL(O)+WIDTH(O)-COL(R)+9,LINE(O)+HEIGHT(O)-(HEIGHT(O)-20)/2-11-LINE(R))'
  54.     end
  55.     end
  56. return
  57.  
  58. /* Traitement des erreurs, interruption du programme */
  59. syntax:
  60. erreur=RC
  61. 'MESSAGE("Script Tourner.AmiCAD"+CHR(10)+"Erreur de syntaxe"+CHR(10)+"en ligne 'SIGL'"+CHR(10)+"'errortext(erreur)'")'
  62. exit
  63.  
  64. error:
  65. 'MESSAGE("Script Tourner.AmiCAD"+CHR(10)+"Erreur en ligne 'SIGL'")'
  66. exit
  67.